//  给定一个不含重复数字的数组 nums ，返回其 所有可能的全排列 。你可以 按任意顺序 返回答案
var permute = function(nums) {
    nums.sort((a, b) => { return a - b });
    let arr = [];
    let used = {};

    function change(path) {
        if (path.length == nums.length) {
            arr.push(path.slice());
            return;
        }
        for (let i = 0; i < nums.length; i++) {
            if (used[nums[i]]) continue;
            path.push(nums[i]);
            used[nums[i]] = true; //哈希去重
            change(path);
            path.pop();
            used[nums[i]] = false;
        }
    }
    change([]);
    console.log(arr);
    return arr;
}


let a = [1, 3, 2, 4]
permute(a)